#ifndef STUDENT_MANAGEMENT_SYSTEM_H
#define STUDENT_MANAGEMENT_SYSTEM_H

#include <list>
#include <memory>
#include "Person.h"

class StudentManagementSystem {
private:
    std::list<std::unique_ptr<Person>> students;
    std::list<std::unique_ptr<Person>>::iterator findStudent(const std::string& id);

public:
    void addStudent(std::unique_ptr<Person> student);
    void removeStudent(const std::string& id);
    void displayAll() const;
    void findByMajor(const std::string& major) const;
    void countStudents() const;
    void sortByGPA();
};

#endif

